ALB 配下の Tableau Server と Okta を連携し Tableau Server の認証を多要素認証にする
はじめに
Application Load Balancer(ALB) 配下にインストールされた Tableau Server の認証を多要素認証(MFA)にしてみました。
ALB などのリバースプロキシ配下に Tableau Server をインストールしている場合、Tableau Server 側で、リバースプロキシに関する追加設定や SAML 構成時の証明書の使用に関して注意点があるので、その内容をまとめておきたく記事としました。本記事では、IdP として Okta を使用しています。
前提条件
以下の環境で検証しています。
- Okta
- Okta Developer を使用
- Tableau Server
- バージョン:2023.3
- OS:Windows Server 2019
- 構成
- 単一サーバー構成
- アイデンティティストア:ローカル
- Tableau Serverをインストールするサーバー(EC2)をローンチするための VPC、サブネットは構築済み
- Route53 にて検証用に
yy16test.xyz
のDNS ホストゾーンを作成済み- クライアントは、CNAME レコードを使用して Tableau Server にアクセス
- 具体的には、サブドメイン
tabsrv.yy16test.xyz
を使用してアクセスします
- 具体的には、サブドメイン
- クライアントは、CNAME レコードを使用して Tableau Server にアクセス
Tableau Server のインストール
構成
本記事では、上記の前提条件に加えて以下の構成で Tableau Server をインストールします。
- Tableau Server へのアクセスに使用する FQDN を、CNAME で登録し、それに対応するサーバ証明書を用意
- Tableau Server の SAML 設定時には、証明書とキーファイルが必要となります。このため、Tableau Server のインストール後に、証明書(
server.crt
)とキーファイル(server.key
)を以下の手順で作成しています - また、ここでは SSL と SAML に同じ証明書を使用しているのでパスフレーズで保護されていないキーファイルを使用します
- Tableau Server の SAML 設定時には、証明書とキーファイルが必要となります。このため、Tableau Server のインストール後に、証明書(
- 作成した証明書類は ACM にインポートし、ALB リスナーに関連付け
- SSL オフロードを利用して、HTTPS 要求は ALBで終了し、そこから Tableau Server へは HTTP 経由で通信を行う
- この構成のために、Tableau Server の外部 SSL は無効のままとしています
構成は下図の通りです。
Tableau Server を ALB 配下にインストール際の具体的な手順は、以下の記事をご参照ください。
リバース プロキシ サーバーを使用するための Tableau Server の構成
ALB などのリバースプロキシ配下に Tableau Server をインストールする場合、Tableau Server 側でtsm configuration set
コマンドによる以下のオプションの設定変更が必要です。
- gateway.trusted
- gateway.public.host
- gateway.trusted_hosts
- gateway.public.port
Tableau Server のインストール後に上記の追加設定を行います。各オプションの詳細や、設定コマンド等については以下をご参照ください。
リバース プロキシ サーバーを使用するための Tableau Server の構成 | DevelopersIO
この時点でクライアントから HTTPS 経由で Tableau Server へのアクセスが可能となります。
SAML 構成
Tableau Server のインストール後、外部アイデンティティ プロバイダー(IdP)を使用した SAML の設定を行います。
SSL オフロード時の注意点
本記事の構成のように、HTTPS 要求を ALB で終了し、ALB と Tableau Server 間は HTTP 経由での通信が行われている場合、Tableau Server 側でプロキシ構成を行う必要があるので注意します。
こちらは、上述の手順(リバース プロキシ サーバーを使用するための Tableau Server の構成)を行うことで設定済みとなります。
SSL オフロード | Tableau Help
Okta 側の操作も含めた Tableau Server の SAML 構成の具体的な手順は以下の記事をご参照ください。
Tableau Server と Okta を連携し Tableau Server の認証を SSO にする #Tableau | DevelopersIO
SAML 構成後、Tableau Server にアクセスすると、自動的に Okta 側の ログイン画面に遷移するようになります。
Okta 側:MFA 設定
ここでは、Tableau Server の認証を多要素認証にするために、Okta Verify を用いたプッシュ検証を使用します。
Okta Verify | Okta Docs
Okta Developer の管理コンソールの「Security > Authenticators」から [Add authenticator] をクリックします。
追加する認証を選択できるので、ここでは [Okta Verify] を選択します。
ポップアップが表示されるので、ここではデフォルトの設定で進め [Add] をクリックします。
その後、Okta Verify が Authenticators に追加されます。
Tableau Server へのアクセスに適用する
「Applications」タブから対象のアプリケーションを選択し [Sign On] タブをクリックします。
ページ下部で適用されているポリシー(ここでは Default Policy)を確認できるので、[View policy details] からポリシーの編集を行います。
特に何も設定していない場合、パスワードによる認証が選択されているので、「Actions」から [Edit] を選択します。
項目「User must authenticate with」で、ここでは以下のように、パスワードと追加の要素による認証としました。上記の手順で、Okta Verify を追加している場合、追加の要素として Okta Verify を使用できます。
Tableau Server にアクセス
設定を保存し、Tableau Server にアクセスしてます。Okta 側の画面に遷移するので、Okta 側のユーザーのユーザー名・パスワードを入力します。Okta Verify のセットアップが未実施の場合、次の画面が表示されます。
[セットアップ] をクリックするとQRコードが表示されるので、スマートフォン等にインストールした Okta Verify のアプリケーションから読み取ります。
初期設定後は、ユーザー名・パスワードの入力後に、以下の表示となるのでモバイルアプリケーション側に表示される6桁の一時コード入力することで、Tableau Server にログインできるようになります。
Tableau Desktop からログインベースのライセンス管理時にサーバーにサインインする場合も、同様の手順となります。(Okta 側のログイン画面に遷移します。)
さいごに
Okta と連携し、Application Load Balancer(ALB) 配下にインストールされた Tableau Server の認証を多要素認証(MFA)にしてみました。
ALB 配下に Tableau Server をインストールする際は、リバース プロキシ サーバーを使用するための追加設定が必要となる点や、SAML 向けに Tableau Server を構成する際は、証明書とキーファイルも必要となるので、注意が必要と思います。
本記事の内容が何かの参考になれば幸いです。